#include "UART.h"
#include "stdio.h"
/******************************串口重定向***************************************/
//#if !defined(__MICROLIB)
////不使用微库的话就需要添加下面的函数
//#if (__ARMCLIB_VERSION <= 6000000)
////如果编译器是AC5  就定义下面这个结构体
//struct __FILE
//{
//        int handle;
//};
//#endif

//FILE __stdout;

////定义_sys_exit()以避免使用半主机模式
//void _sys_exit(int x)
//{
//        x = x;
//}
//#endif
////printf函数重定义
//int fputc(int ch, FILE *stream)
//{
//        //当串口0忙的时候等待，不忙的时候再发送传进来的字符
//        while( DL_UART_isBusy(UART_0_INST) == true );

//        DL_UART_Main_transmitData(UART_0_INST, ch);

//        return ch;
//}
/*********************************************************************/



//// 串口发送单个字符
//void uart0_send_char(char ch)
//{
//	// 检测串口是否忙碌
//	while( DL_UART_isBusy(UART_0_INST) == true );
//	// 发送单个字符
//	DL_UART_Main_transmitData(UART_0_INST, ch);
//}

//// 串口发送多个字符
//void uart0_send_string(char *str)
//{
//	while(*str!=0 && str != 0)
//	{
//		uart0_send_char(*str++);
//	}
//}

/*************************	串口变量	*********************************/
volatile uint8_t RX0_BUF[RxMaxLength];
volatile uint8_t RX0_LEN = 0;
volatile uint8_t RX1_BUF[RxMaxLength];
volatile uint8_t RX1_LEN = 0;
/***********************************************************************/

// UART0
//void UART_0_INST_IRQHandler(void)
//{
//	static char uart_data;
//	switch( DL_UART_getPendingInterrupt(UART_0_INST) )
//	{
//		case DL_UART_IIDX_RX:
//			if(RX0_LEN < RxMaxLength)
//				RX0_BUF[RX0_LEN++] = DL_UART_Main_receiveData(UART_0_INST);
//			break;
//		default:
//			break;
//	}
//}

// UART1
void UART_1_INST_IRQHandler(void)
{
	switch( DL_UART_getPendingInterrupt(UART_1_INST) )
	{
		case DL_UART_IIDX_RX:
			if(RX1_LEN < RxMaxLength)
				RX1_BUF[RX1_LEN++] = DL_UART_Main_receiveData(UART_1_INST);
			break;
		default:
			break;
	}
}


